home *** CD-ROM | disk | FTP | other *** search
/ Hacker's Arsenal - The Cutting Edge of Hacking / Hacker's Arsenal - The Cutting Edge of Hacking.iso / texts / netdiablo.txt < prev    next >
Text File  |  2001-07-11  |  16KB  |  297 lines

  1. An Introduction To The Internet And TCP/IP
  2. By Netdiablo Of 616 <ndiablo@complink.net>
  3.  
  4. I have written this file because it is really pathetic how many people on
  5. the Internet call themselves "hackers" and really have no idea how the
  6. network that they "hack" on even works in the first place. This file will
  7. cover the basics of the Internet and will provide a good reference to new
  8. and intermediate users.
  9.  
  10. The Internet began as the ARPANet in the 1960's. The ARPANet was a network
  11. linking together various research installations and universities across the
  12. nation that were involved in projects funded under DARPA, the Defense 
  13. Advanced Research Projects Agency. Initial consultants on the ARPANet
  14. included Rand, Inc. and Bolt, Baranek, And Newman. The Internet existed,
  15. up to the early 1990's as simply a research network mainly used by 
  16. universities and corporations, mostly computer companies. In the 1990's,
  17. however, the emergence of faster modems and the World Wide Web to the
  18. world at large started the Internet phenomenon known today.
  19.  
  20. ------------------------------------------------------------------------------
  21. New User Definition [TCP/IP]: Transmission Control Protocol/Internet Protocol.
  22. These are the two protocols that the Internet "runs" on.
  23. ------------------------------------------------------------------------------
  24.  
  25. On the Internet, machines are connected to networks, which are divided into
  26. subnetworks. Each machine [or device] on the network has a specific address,
  27. known as an IP address. An IP address is composed of four segments, known
  28. as octets. These octets define a unique address, with part of them describing
  29. a network and/or subnetwork, and part of them describing a particular node
  30. on a network.
  31.  
  32. ------------------------------------------------------------------------------
  33. New User Definition [Node]: The generic term for a device on the network,
  34. usually used to describe a system or a router. Other network devices, such as
  35. printers and hubs are usually not known as nodes.
  36. ------------------------------------------------------------------------------
  37.  
  38. IP addresses are organized into five classes, which are Class A through Class
  39. E. Depending on how large an organization is, it uses different classes of
  40. addresses to give to the machines on it's network.
  41.  
  42. Class A networks are the largest, with a block of Class A addresses being big
  43. enough to use with up to 167772 machines. These are used for very large 
  44. organizations and collections of related networks. Also, many educational
  45. institutions are grouped under a Class A address.
  46.  
  47. Class B networks follow Class A networks in size, with a maximum capacity of
  48. being able to address up to 65536 machines. 
  49.  
  50. Class C networks are commonly used by many smaller companies. You will also
  51. see many local ISPs using one or two blocks of Class C addresses on it's 
  52. network.  Each block of Class C addresses is capable of addressing up to
  53. 255 machines.
  54.  
  55. Class D addresses are reserved for IP Multicasting, and Class E addresses are
  56. reserved for "experimental purposes".
  57.  
  58. -----------------------------------------------------------------------------
  59. New User Definition [Octet]: An octet a component of an IP address. Each 
  60. address includes four octets. Each octet can have a value ranging from 0 to
  61. 255. In a Class A network, you can use up to three of the octets on your
  62. network, in a Class B, you can use up to two, and in a Class C, you can use
  63. only the last octet for addressing machines on your network. This is shown in
  64. detail below:
  65.  
  66. Class A:        Example: Allocates a block, 10.0.0.1 to 10.255.255.255
  67. Class B:        Example: Allocates a block, 10.1.0.1 to 10.1.255.255
  68. Class C:        Example: Allocates a block, 10.1.1.1 to 10.1.1.255
  69.  
  70. You can see how with a Class A network, you have three octets you can use up
  71. with addresses for machines, on a Class B network, you only have two octets
  72. you can use up with addresses, and on a Class C network, you only have a
  73. single octet to use for addresses.
  74. -----------------------------------------------------------------------------
  75.  
  76. IP Addresses are designed so that you can make many smaller networks out of
  77. larger networks. For instance, you could make 255 Class B networks out of a
  78. single Class A block, and you can make 255 Class C networks out of a single
  79. Class C block. This process of making large networks into smaller networks
  80. is called subnetting.
  81.  
  82. -----------------------------------------------------------------------------
  83. New User Definition [Subnetting]: Creating smaller sub-networks from a single
  84. larger network.
  85. -----------------------------------------------------------------------------
  86.  
  87. When subnetworks are created, the concept of masking is also used. Subnet
  88. masks mask out certain bits to show where the network addresses end and the
  89. space where the addresses that can be used for hosts begin. Examples of
  90. masks are below:
  91.  
  92. N=Network addresses
  93. H=Host addresses
  94.  
  95. An example of a Class A netmask is: 
  96.                 NNNNNNNN.HHHHHHHH.HHHHHHHH.HHHHHHHH
  97. Numerically, that is:   0.255.255.255
  98.  
  99. An example of a Class B netmask is:
  100.                 NNNNNNNN.NNNNNNNN.HHHHHHHH.HHHHHHHH
  101. Numerically, that is:   0.0.255.255
  102.  
  103. An example of a Class C netmask is:
  104.                 NNNNNNNN.NNNNNNNN.NNNNNNNN.HHHHHHHH
  105. Numerically, that is:   0.0.0.255
  106.  
  107. The above diagram will be somewhat confusing to you, so it will be explained
  108. below. Above, you will notice that each octet [there are four in an IP
  109. address, remember] is represented by eight letters. Each letter represents a
  110. bit in an 8-bit byte, which is an octet. This explains the fact that each
  111. octet can only hold an address up to 255, because an 8-bit byte can only 
  112. hold a number up to 255.
  113.  
  114. Network addresses can be pretty hard to remember, so machines on a network
  115. can also have a name. Each machine can have a name, and so can the network
  116. on which it exists. The name for a network is called a "domain name".
  117. Domain names can be registered with the InterNIC for a ridiculously high
  118. sum of money. Each network also registers into a high-level domain. These
  119. are as follows for the United States:
  120.  
  121. .com: Commercial organizations.
  122. .edu: Educational institutions.
  123. .org: Nonprofit organizations.
  124. .net: Networks.
  125. .gov: Non-military governmental sites.
  126. .mil: Military sites.
  127.  
  128. Each country also has an ISO top-level domain assigned to it, examples of
  129. which are listed below:
  130.  
  131. United States           us              Russia                  ru
  132. United Kingdom          uk              Japan                   jp
  133. France                  fr              Italy                   it
  134. Germany                 de              Denmark                 dk
  135.  
  136. Now that you the structure of an address and domain names have been
  137. explained, the next topic that will be covered is ports. Every server on
  138. the internet has a number of ports open. If you are having trouble
  139. understanding this, think of each port as a door into a building. Some
  140. ports are open, and some are closed. On the open ports, programs that
  141. serve certain services and protocols run. In the unix vernacular, these
  142. programs are called daemons. Examples of daemons are "telnetd", the telnet
  143. daemon, "ftpd", the FTP daemon, "sendmail", the UNIX mailer, and "httpd",
  144. the HTTP server. You can connect to ports using client programs for the
  145. certain port, or you can connect just using telnet, which will give you
  146. a raw interface to the port. Now, I will provide an overview of some of
  147. the most used services, and how to access them using UNIX.
  148.  
  149. FTP: Port 21
  150.  
  151. First of all, FTP. FTP is probably the most used file transfer protocol in
  152. the world. On the server side, a host will usually be either be running
  153. the wuftpd, which was developed at Washington University, or the BSD FTP
  154. daemon. FTP is accessed using a client program, the default of which is
  155. a small UNIX program called "ftp". To open a connection to a site, you can
  156. either run "ftp" with the host you want to connect to given as an argument
  157. (i.e. "ftp anubis-gw.dyn.ml.org"), or you can also start "ftp", and then
  158. use the "open" command at the "ftp>" prompt (i.e. "open shell.complink.net").
  159. Once you have connected to the server, you will be prompted for a username
  160. and password on the remote machine. Sometimes, a machine will also be running
  161. an "anonymous" account, this can be accessed by logging in as "anonymous" or
  162. "ftp" at the FTP login prompt. Once you have logged into the server, you can
  163. get a file using the "get" command, you can send a file using the "send"
  164. command, and you can list directories using the "ls" command and you can
  165. change directories using the "cd" command. For more information, type "?"
  166. or "help" at the "ftp>" prompt.
  167.  
  168. Secure Shell: (Defaults to port 22)
  169.  
  170. Secure Shell is not as much of a protocol as it is an application, but it
  171. still deserves to be included here. Secure Shell is a very useful tool for
  172. accessing hosts remotely. It resembles the 'telnet' and 'rlogin' applications,
  173. but unlike 'telnet' and 'rlogin' Secure Shell encrypts the session. Therefore,
  174. the connection cannot be sniffed, which increases security. The client for
  175. the Secure Shell protocol is called "ssh". To run the ssh application, the
  176. syntax is typically "ssh -l username host", in which host is the host that
  177. you will be accessing, and "username" is the username to login to the host
  178. as. Just typing "ssh" will make the client program  print out a list of
  179. command line options.
  180.  
  181. Telnet: Port 23
  182.  
  183. Now, onto the "telnet" protocol. Telnet is a protocol used to remotely
  184. login to machines over a network. UNIX includes a default client for
  185. telnet called "telnet". To connect to a host using "telnet", you can
  186. either run the telnet application using the host name as an argument
  187. (i.e. "telnet anubis-gw.dyn.ml.org"), or you can run the telnet application,
  188. and, once you are at the "telnet>" prompt, you can use the "open" command
  189. (i.e. "open anubis-gw.dyn.ml.org"). Once you are connected, you can interact
  190. with the machine as usual. If you need to get back to the telnet prompt,
  191. you can type the escape character at any time during the session. This is
  192. set by default to "^]". Once you are at the "telnet>" prompt, you can
  193. do things like disconnect or continue your session. When you log out of
  194. the machine you have telnetted to, the connection will be automatically
  195. closed.
  196.  
  197. Sendmail: Port 25
  198.  
  199. The "Sendmail" protocol is one of the most common, and also most complex
  200. protocols on the Internet. Almost every site on the Internet that handles
  201. mail will be running Sendmail, or one of about two alternatives. You
  202. interact with Sendmail by using the UNIX program "mail". Usually, you
  203. invoke mail with the email address of the person you want to send mail
  204. to as an argument (i.e. "mail ndiablo@complink.net"). Once you have done
  205. that, you will be prompted for a topic, and then will be able to write the
  206. letter. Once you have finished writing the mail, you can send it by
  207. typing a "^D" or a "." on an empty line. You can abort mail by typing a "^C"
  208. anytime during the program. There are many more arguments for the "mail"
  209. program, to learn about them, refer to the "mail" online manual page.
  210.  
  211. DNS: Port 53
  212.  
  213. DNS is the port that the Internet Domain Name Server Daemon (BIND) runs on.
  214. However, before the daemon is explained, you must understand the protocol.
  215. As you know, on the Internet, each host has a 'name'. Each 'name' maps to
  216. an IP address. Domain name servers contain 'tables' of these hostname-
  217. address mappings for the 'domain' they serve. These work in a 'tree' sort
  218. of configuration. For instance, each 'top level' domain (e.g. .com, .edu,
  219. .mil, etc.) has nameservers that map to all the IP addresses of the 
  220. nameservers for 'second level' domains (e.g. sun.com mit.edu, etc) which
  221. have nameservers that map all the machines in their domains to IP addresses
  222. and so on. This is shown in a diagram below:
  223.  
  224.                 .com            .edu                    .net
  225.                 |               |                       |
  226.                 sun.com         mit.edu                 complink.net
  227.                 |               |                       |
  228.         machine1.sun.com        machine1.mit.edu        machine1.complink.net
  229.  
  230. Therefore, this daemon runs on the domains nameservers and maps the IP
  231. addresses of the machines in the domain to hostnames in the domain.
  232.  
  233. TFTP: Port 69
  234.  
  235. FTFP is the Trivial File Transfer Protocol. TFTP resembles FTP in the fact
  236. that it is used to transfer files between nodes, but unlike FTP, TFTP uses
  237. no user authentication. This really means that any user can TFTP to a host
  238. and steal any file they like if the host is running the TFTP protocol.
  239. Obviously, this is a big security risk, and no server on the Internet should
  240. be running it. The only real use for this protocol is for applications such
  241. as a boot server. If this protocol must be run, then at the least the admin
  242. should be using password shadowing, be behind a decent firewall, and use
  243. the directory limiting feature built into some versions. The client for TFTP
  244. is a simple program called "tftp". Since it is so seldom used, refer to the
  245. online manual page, or enter "?" or "help" at the "tftp>" prompt.
  246.  
  247. Finger: Port 79
  248.  
  249. Finger is a protocol for retrieving information on a user on a system. A finger
  250. query will usually return the users real name, location, phone number, last
  251. login time, and the last time the user read their mail. This protocol is not
  252. really that useful, and in my opinion, should not be run, as it's only real
  253. purpose is to provide information helpful to those trying to use social
  254. engineering attacks against people. The client for the finger protocol is a
  255. application, unsurprisingly called "finger". It's syntax usually follows the
  256. pattern "user@host", for instance, "ndiablo@complink.net". You can also
  257. attempt to finger the host, showing all users logged into the system by
  258. a syntax like "@host", like "finger @complink.net".
  259.  
  260. HTTP: Port 80
  261.  
  262. The HTTP protocol is a familiar one. Everyone should know about the HTTP
  263. protocol by this point in time. HTTP is the protocol that the World Wide
  264. Web is served upon. There are many clients for HTTP, but the most common
  265. text-based one is called "lynx". To connect to a site using lynx, you
  266. execute lynx with the name of the site given as an argument. For instance,
  267. "lynx http://anubis-gw.dyn.ml.org". You can also execute lynx by typing
  268. "lynx" and then entering the name of the site you wish to go to from inside
  269. the program.
  270.  
  271. POP Version 3: Port 110
  272.  
  273. The POP [Post Office Protocol] is used to retrieve mail from a machine 
  274. remotely. There are a few different UNIX clients for POP, including 
  275. "fetchmail". These programs have a somewhat large amount of options,
  276. and there is no real 'default' syntax. For more information, refer to
  277. the online manual page of your POP client.
  278.  
  279. NNTP: Port 119
  280.  
  281. The NNTP [Network News Transfer Protocol] is used, obviously, to transfer
  282. netnews between machines. There are many clients to access this, one example
  283. of which is 'tin'. For more information, refer to the online manual page
  284. for your network news client.
  285.  
  286. Now, the very fundamentals of the Internet have been explained to you. IP
  287. addressing, protocols, ports, the simple theory behind domain name service,
  288. and other useful bits of knowledge. Obviously this wasnt an attempt at
  289. making a super-reference, but it should do to explain the basic concepts
  290. that one will run into while using the Internet. For more advanced 
  291. information, look in issues of Phrack magazine, and perhaps look into buying
  292. a good book on TCP/IP. 
  293.  
  294. Any comments, feel free to email ndiablo@complink.net or also
  295. root@anubis-gw.dyn.ml.org -Netdiablo
  296.  
  297. Tnx to Reality-X, Digiphreq, and Ishamael for proofreading.